Skip to content

Conversation

Copy link
Contributor

Copilot AI commented Dec 5, 2025

Complete TypeScript toolkit for creating Microsoft Agent (MSAgent) character definitions - the animated desktop assistants like Clippy, Merlin, etc.

Core Components

  • CharacterBuilder - Fluent API for character creation with animations, sounds, balloon config
  • AnimationBuilder - Frame sequence builder with branching, sounds, timing controls
  • CharacterExporter - JSON export/import, package export, validation
  • CLI - Interactive character creation workflow

Usage

import { CharacterBuilder, AnimationBuilder, createStandardAnimation } from 'msagent-ai';

const builder = new CharacterBuilder({
  name: 'MyAgent',
  width: 128,
  height: 128,
  includeStandardAnimations: true
});

const wave = new AnimationBuilder('CustomWave')
  .setLoop(false)
  .createFrame('base64data', 100)
  .build();

builder.addAnimation(wave);
builder.setBalloonConfig({ fontName: 'Comic Sans MS', fontSize: 14 });

CharacterExporter.exportToJSON(builder.build(), 'agent.json');

Standard Animations

33 built-in templates: Idle1-3, Show, Hide, Speak, Wave, Think, Pleased, Sad, gestures, etc.

Test Coverage

77 tests covering builders, utilities, and export functionality.

CI/CD

GitHub Actions workflow included for automatic builds:

  • Runs on push/PR to main/master branches
  • Tests on Node.js 18.x, 20.x, and 22.x
  • Standalone executables built for Windows (.exe), Linux, and macOS
  • Downloadable artifacts:
    • msagent-windows-x64 - Windows executable
    • msagent-linux-x64 - Linux executable
    • msagent-macos-x64 - macOS executable
    • msagent-all-platforms - All executables in one archive
  • 30-day artifact retention

Building Executables Locally

npm run build:exe

This creates standalone executables in the bin/ directory that can run without Node.js installed.

Original prompt

Create a full fledged tool that will create MSAgent characters.


💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.

Copilot AI and others added 2 commits December 5, 2025 09:23
Co-authored-by: ExtCan <60326708+ExtCan@users.noreply.github.com>
Co-authored-by: ExtCan <60326708+ExtCan@users.noreply.github.com>
Copilot AI changed the title [WIP] Add tool for creating MSAgent characters Add MSAgent character creation toolkit Dec 5, 2025
Copilot AI requested a review from ExtCan December 5, 2025 09:30
@ExtCan
Copy link
Owner

ExtCan commented Dec 5, 2025

@copilot Add automatic builds and allow for downloading the artifacts.

Co-authored-by: ExtCan <60326708+ExtCan@users.noreply.github.com>
Copy link
Contributor Author

Copilot AI commented Dec 5, 2025

@copilot Add automatic builds and allow for downloading the artifacts.

Added GitHub Actions workflow in commit e0aba3a. The workflow:

  • Runs on push/PR to main/master branches
  • Tests on Node.js 18.x, 20.x, and 22.x
  • Uploads two downloadable artifacts:
    • dist-build: The compiled TypeScript output
    • npm-package: Complete package with dist/, package.json, README, and LICENSE
  • Artifacts retained for 30 days
  • Also includes manual trigger via workflow_dispatch

@ExtCan
Copy link
Owner

ExtCan commented Dec 5, 2025

@copilot I meant build EXE file

Co-authored-by: ExtCan <60326708+ExtCan@users.noreply.github.com>
Copy link
Contributor Author

Copilot AI commented Dec 5, 2025

@copilot I meant build EXE file

Updated in commit 3318745. The workflow now builds standalone executables:

  • msagent-win.exe - Windows x64 executable
  • msagent-linux - Linux x64 executable
  • msagent-macos - macOS x64 executable

These can be downloaded from the Actions tab after each build. Run locally with npm run build:exe to generate executables in bin/.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants